#!/usr/bin/env node

/**
 * Todo管理器使用演示
 * 展示完整的任务完成流程
 */

const todoManager = require('./todo-manager');

console.log('🚀 极简Todo管理器演示\n');

// 1. 显示当前任务
console.log('=== 1. 查看当前任务 ===');
const currentTask = todoManager.getCurrentTask();
if (currentTask) {
    console.log(`当前任务: ${currentTask.description}`);
    console.log(`任务行: ${currentTask.line.trim()}`);
} else {
    console.log('没有待完成的任务');
}

console.log('\n=== 2. 模拟任务完成流程 ===');

// 2. 模拟工作流程
if (currentTask) {
    console.log(`\n📋 正在处理: ${currentTask.description}`);

    // 模拟工作步骤
    console.log('🔍 分析需求...');
    console.log('💻 编写代码...');
    console.log('🧪 运行测试...');

    // 3. 运行测试
    const testResult = todoManager.runTests();
    if (testResult.success) {
        console.log('✅ 测试通过');

        // 4. 标记任务完成
        console.log('📝 标记任务完成...');
        const marked = todoManager.markTaskComplete(currentTask.index);
        if (marked) {
            console.log('✅ 任务已完成');

            // 5. Git提交
            console.log('📦 提交更改...');
            const committed = todoManager.gitCommit(`feat: ${currentTask.description}`);
            if (committed) {
                console.log('✅ 已提交到Git');
            }
        }
    } else {
        console.log(`❌ 测试失败 (退出码: ${testResult.exitCode})`);
    }
}

console.log('\n=== 3. 验证结果 ===');

// 6. 验证任务状态
const nextTask = todoManager.getCurrentTask();
if (nextTask) {
    console.log(`下一个任务: ${nextTask.description}`);
} else {
    console.log('🎉 所有任务已完成！');
}

console.log('\n✨ 演示完成！');
console.log('\n使用方法:');
console.log('  node todo-manager.js current   - 查看当前任务');
console.log('  node todo-manager.js complete  - 完成当前任务');
console.log('  node todo-manager.js test      - 运行测试流程');
console.log('  node demo-todo-flow.js         - 运行演示');